package com.practice.ajCollections010.map.hashmap;

import java.util.HashMap;

/**
 * 插入元素:
 *          1. 可以保存任何类型的数据类型，其中包括 null
 *          2. key 不能重复
 *          3. value 值可以重复，其中包括 null
 */
public class AddElement {
    public static void main(String[] args) {
        HashMap<String, String> hashMap = new HashMap<>();
        // 将指定值与该 Map 中的的指定键关联，如果之前包含改键的映射，则替换旧值
        hashMap.put("a", "A");
        hashMap.put("b", "B");

        HashMap<String, String> hashMap2 = new HashMap<>();
        hashMap2.put("a", "Z");
        // 将 hashMap 所有 k-v 复制到 hashMap2，hashMap 与 hashMap2 中重复的 key 的值保持不变
        hashMap2.putAll(hashMap);
        System.out.println(hashMap2.get("a"));
        System.out.println(hashMap2.get("b"));
        // 如果指定的键尚未与值关联(或映射到 null)，则将其与给定的值关联，否则返回当前值
        String s = hashMap.putIfAbsent("a", "Q");
        System.out.println(hashMap.get("a"));

        hashMap.put(null, "null key");
        System.out.println(hashMap.get(null));
        hashMap.put(null, null);
        System.out.println(hashMap.get(null));
        hashMap.put("null", null);
        System.out.println(hashMap.get("null"));

    }
}
